
import { IsNotEmpty, IsString,  IsOptional, IsInt,  MaxLength,ArrayMinSize,IsArray ,ValidateNested} from 'class-validator';
import { Type  } from 'class-transformer';
import { BaseRequestListDto } from '@/dto/baseRequestList.dto';
        
        
export class CreateDictDto {
        
    /**名称*/
    @IsNotEmpty({ message: '名称不能为空' })
    dictName!:string; 
            
    /**备注*/
    @IsOptional()
    comment?:string; 
            
}
export class UpdateDictDto {    
        
    /**ID*/
    @IsOptional()
    id?:number; 
            
    /**名称*/
    @IsOptional()
    dictName?:string; 
            
    /**状态*/
    @IsOptional()
    status?:number; 
            
    /**备注*/
    @IsOptional()
    comment?:string; 
            
}
export class QueryDictDto extends BaseRequestListDto {
        
    /**ID*/
    @IsOptional()
    id?:number; 
            
    /**名称*/
    @IsOptional()
    dictName?:string; 
            
    /**状态*/
    @IsOptional()
    status?:number; 
            
    /**创建时间*/
    @IsOptional()
    createdAt?:string; 
            
    /**备注*/
    @IsOptional()
    comment?:string; 
            
}
export class DeleteDictDto {
    @IsNotEmpty({ message: 'ID列表不能为空' })
    @IsInt({ each: true, message: '每个ID必须是整数' })
    ids!: number[];
}
        
        
export class SelectOneDictDto {
    @IsNotEmpty({ message: 'ID不能为空' })
    id!: number;
}
        
        
        
export class DictResponseDto{    
        
    /**ID*/
    @IsOptional()
    id?:number; 
            
    /**名称*/
    @IsOptional()
    dictName?:string; 
            
    /**状态*/
    @IsOptional()
    status?:number; 
            
    /**创建时间*/
    @IsOptional()
    createdAt?:string; 
            
    /**更新时间*/
    @IsOptional()
    updatedAt?:string; 
            
    /**备注*/
    @IsOptional()
    comment?:string; 
            
}
/**
class SortDictItemDto {
    @IsInt({ message: 'id必须是整数' })
    @IsNotEmpty({ message: 'ID不能为空' })
    id!: number;

    @IsInt({ message: 'sort必须是整数' })
    @IsNotEmpty({ message: '排序不能为空' })
    sortOrder!: number;
}
export class SortDictDto {
    @IsArray({ message: 'list必须是数组' })
    @ArrayMinSize(1, { message: 'list不能为空数组' })
    @ValidateNested({ each: true }) // 校验每个数组项
    @Type(() => SortDictItemDto) // 必须配合class-transformer
    list!: SortDictItemDto[];
}*/
        
        